package com.happy.cat.project.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import com.happy.cat.framework.aspectj.lang.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;


/**
 * 交易流水对象 social_trans
 * 
 * @author verne
 * @date 2020-08-29
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
@TableName("social_trans")
@ApiModel(value="交易流水对象", description="交易流水对象数据")
public class SocialTrans implements Serializable {

private static final long serialVersionUID=1L;


    /** 主键ID */
    @ApiModelProperty(value = "${comment}")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /** 流水编号 */
    @Excel(name = "流水编号")
    @ApiModelProperty(value = "流水编号")
    private String transNo;

    /** 流水类型: 1充值流水，2礼物流水，3开宝箱流水，4赠送流水 */
    @Excel(name = "流水类型: 1充值流水，2礼物流水，3开宝箱流水，4赠送流水")
    @ApiModelProperty(value = "流水类型: 1充值流水，2礼物流水，3开宝箱流水，4赠送流水")
    private String transType;

    /** 房间id(有的是在房间里给主播赠送的，此时需要记录房间id) */
    @Excel(name = "房间id(有的是在房间里给主播赠送的，此时需要记录房间id)")
    @ApiModelProperty(value = "房间id(有的是在房间里给主播赠送的，此时需要记录房间id)")
    private String roomId;

    /** 房间名 */
    @Excel(name = "房间名")
    @ApiModelProperty(value = "房间名")
    private String roomName;

    /** 支付用户id */
    @Excel(name = "支付用户id")
    @ApiModelProperty(value = "支付用户id")
    private Long payUserId;

    /** 支付账户id, 用于支持多账户体系 */
    @Excel(name = "支付账户id, 用于支持多账户体系")
    @ApiModelProperty(value = "支付账户id, 用于支持多账户体系")
    private Long payAccountId;

    /** 收款用户id */
    @Excel(name = "收款用户id")
    @ApiModelProperty(value = "收款用户id")
    private Long receiveUserId;

    /** 收款账户id, 用于支持多账户体系 */
    @Excel(name = "收款账户id, 用于支持多账户体系")
    @ApiModelProperty(value = "收款账户id, 用于支持多账户体系")
    private Long receiveAccountId;

    /** 支付金额/币数量 */
    @Excel(name = "支付金额/币数量")
    @ApiModelProperty(value = "支付金额/币数量")
    private BigDecimal payAmount;

    /** 支付币类型: 1人名币，0猫粮 */
    @Excel(name = "支付币类型: 1人名币，0猫粮")
    @ApiModelProperty(value = "支付币类型: 1人名币，0猫粮")
    private String payAmountType;

    /** 获得的金额/币数量 */
    @Excel(name = "获得的金额/币数量")
    @ApiModelProperty(value = "获得的金额/币数量")
    private BigDecimal receiveAmount;

    /** 获得币类型: 1人名币，0猫粮 */
    @Excel(name = "获得币类型: 1人名币，0猫粮")
    @ApiModelProperty(value = "获得币类型: 1人名币，0猫粮")
    private String receiveAmountType;

    /** 支付时间/到账时间 */
    @Excel(name = "支付时间/到账时间" , width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "支付时间/到账时间")
    private Date payTime;

    /** 支付渠道: 0系统, 1支付宝, 2微信 */
    @Excel(name = "支付渠道: 0系统, 1支付宝, 2微信")
    @ApiModelProperty(value = "支付渠道: 0系统, 1支付宝, 2微信")
    private String payChannel;

    /** 额外字段1 */
    @Excel(name = "额外字段1")
    @ApiModelProperty(value = "额外字段1")
    private String extra1;

    /** 额外字段2 */
    @Excel(name = "额外字段2")
    @ApiModelProperty(value = "额外字段2")
    private String extra2;

    /** 额外字段3 */
    @Excel(name = "额外字段3")
    @ApiModelProperty(value = "额外字段3")
    private String extra3;

    /** 创建时间 */
    @ApiModelProperty(value = "额外字段3")
    private Date createTime;

    /** 更新时间 */
    @ApiModelProperty(value = "额外字段3")
    private Date updateTime;
}
